home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 361_01 / dwrite.c < prev    next >
C/C++ Source or Header  |  1991-09-18  |  1KB  |  50 lines

  1.  
  2. /* Dwrite.c --> Direct video Writes.
  3.  *
  4.  * Author: J.Ekwall                                     13 September 91
  5.  *
  6.  * Copyrighted to the Public Domain.  Unlimited Distribution Authorized.
  7.  *
  8.  * User Assumes All Risks/Liabilities.
  9.  *
  10.  * Last Update: 13 September 91/EK
  11.  */
  12.  
  13. #include <stdek.h>
  14. #include <gadgets.h>
  15.  
  16. void DputChr(char ch, int Color)
  17. {
  18.     int xx, yy;
  19.  
  20.     Getxy(&xx, &yy); Vpoke(Vaddr(xx,yy), ch + (Color << 8)); CursorFwd(1);
  21. }
  22.  
  23. void Dwrite(int X, int Y, int Color, char *Text)
  24. {
  25.     int  addr;
  26.  
  27.     Color = Color << 8; Gotoxy(X, Y); CursorFwd(strlen(Text));
  28.     for (addr = Vaddr(X, Y); *Text; addr += 2)
  29.        Vpoke(addr, (*Text++ & 0xFF) + Color);
  30. }
  31.  
  32. void DwriteEnd(int X, int Y, int Color, char *Text, int N)
  33. {
  34.     int  addr;
  35.  
  36.     Color = Color << 8; Gotoxy(X, Y); CursorFwd(strlen(Text));
  37.     for (addr = Vaddr(X, Y); *Text; addr += 2, --N)
  38.        Vpoke(addr, (*Text++ | Color));
  39.     for (Color |= ' '; N--; addr += 2) Vpoke(addr, Color);
  40. }
  41.  
  42. void SetAttr(int X, int Y, int Color)
  43. {
  44.     int Addr;
  45.   
  46.     Addr = Vaddr(X, Y); 
  47.     Vpoke(Vaddr(X, Y), (Vpeek(Addr) & 0xFF) | (Color << 8));
  48. }
  49.  
  50.